package com.zhuanzhuan.hero.user.service;

import com.bj58.zhuanzhuan.zzentry.common.service.entity.ServiceHeaderEntity;
import com.zhuanzhuan.hero.biz.common.entity.risk.control.request.*;
import com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult;

/**
 * @ClassName IRiskControlService
 * @Description
 * @Author hanjunjun
 * @Date 2024/6/20 20:27
 */
public interface IRiskControlService {

    /**
     * 用户基本信息保存 风控
     *
     * @param uid
     * @param header
     * @param userBaseInfoRiskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/6/20
     **/
    RiskControlResult userBaseInfoRiskControl(Long uid, ServiceHeaderEntity header,
        UserBaseInfoRiskControlRequest userBaseInfoRiskControlRequest);

    /**
     * 回收商端外信息风控
     *
     * @param uid
     * @param header
     * @param riskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/7/11
     **/
    RiskControlResult userOuterInfoRiskControl(Long uid, ServiceHeaderEntity header,
        RecycleShareRiskControlRequest riskControlRequest);

    /**
     * 用户联系方式保存 风控
     *
     * @param uid
     * @param header
     * @param userContactRiskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/6/21
     **/
    RiskControlResult userContactInfoRiskControl(Long uid, ServiceHeaderEntity header,
        UserContactRiskControlRequest userContactRiskControlRequest);

    /**
     * 用户个人简介风控
     *
     * @param uid
     * @param header
     * @param userProfileRiskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/6/28
     **/
    RiskControlResult userPersonIntroductionRiskControl(Long uid, ServiceHeaderEntity header,
        UserProfileRiskControlRequest userProfileRiskControlRequest);

    /**
     * 同行认证标签风控
     *
     * @param uid
     * @param labelId
     * @param header
     * @param riskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/7/4
     **/
    RiskControlResult fraternityAuthLabelRiskControl(Long uid, Long labelId, ServiceHeaderEntity header,
        FellowCertificateLabelRiskControlRequest riskControlRequest);

    /**
     * 用户背景图风控
     *
     * @param uid
     * @param header
     * @param riskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/7/9
     **/
    RiskControlResult userBackdropRiskControl(Long uid, ServiceHeaderEntity header,
        UserCoverRiskControlRequest riskControlRequest);

    /**
     * 不靠谱认证风控
     *
     * @param uid
     * @param header
     * @param riskControlRequest
     * @return com.zhuanzhuan.hero.biz.common.entity.risk.control.response.RiskControlResult
     * @author  hanjunjun
     * @date 2024/7/11
     **/
    RiskControlResult unReliableRiskControl(Long uid, Long authRecordId, ServiceHeaderEntity header,
        UnreliableCertificateRiskControlRequest riskControlRequest);


    /**
     * 风控回调的错误字段转换成title
     *
     * @param field
     * @return java.util.List<java.lang.String>
     * @author  hanjunjun
     * @date 2024/6/22
     **/
    String parseTitleByField(String field);
}
